Field of the Invention
The present invention relates in general to scalable video processing, and more specifically to a system and method for scaling complexity of video processing using prioritized layered coding and based on a power savings factor.
Description of the Related Art
The Advanced Video Coding (AVC) standard, Part 10 of MPEG4 (Motion Picture Experts Group), otherwise known as H.264, includes advanced compression techniques that were developed to enable transmission of video signals at a lower bit rate or to enable improved video quality at a given transmission rate. The newer H.264 standard outperforms video compression techniques of prior standards in order to support higher quality streaming video at lower bit rates and to enable internet-based video and wireless applications and the like. The standard defines the syntax of the encoded video bit stream along with a method of decoding the bit stream. Scalable Video Coding (SVC) is an extension of the H.264 which addresses coding schemes for reliably delivery of video to diverse clients over heterogeneous networks using available system resources, particularly in scenarios where the downstream client capabilities, system resources, and network conditions are not known in advance, or dynamically changing from time to time.
SVC achieves scalability by defining a base layer and supporting one or more enhanced layers in which each enhanced layer is scaled based on the base layer information. Whereas H.264 has relatively limited scalability, SVC provides multiple levels of scalability including temporal scalability, spatial scalability, complexity scalability and quality scalability. The base layer should be the simplest form in quality, spatial resolution and temporal resolution. Temporal scalability generally refers to the number of frames per second (fps) of the video stream, such as 7.5 fps, 15 fps, 30 fps, etc. Spatial scalability refers to the resolution of each frame, such as common interface format (CIF) with 352 by 288 pixels per frame, or quarter CIF (QCIF) with 176 by 144 pixels per frame, although other spatial resolutions are contemplated, such as 4CIF, QVGA, VGA, SVGA, DI, HDTV, etc. Complexity scalability generally refers to the various computation capabilities and processing power of the devices processing the video information. Quality scalability is generally measured with a peak signal-to-noise (PSNR) metric defining the relative quality of a reconstructed image compared with an original image. The present disclosure primarily concerns complexity scalability.
Most practical video codecs, including video encoders and decoders, have a particular computation capacity and a limited power capacity. The computation capacity may be generally defined by the capacity or speed of the video processing circuitry (e.g., central processing unit (CPU) or the like) and other supporting circuitry. Power capacity is limited in certain applications, such as mobile devices employing a battery. Mobile devices, for example, have very limited processing power and battery life. Complexity scalability is an attractive technique for mobile devices in order to maximize coding efficiency while minimizing computation cost. Yet most existing codecs have a fixed or very limited computation complexity which cannot be dynamically adjusted by the user and is subject to the variable workload of the operating system among other factors. The workload of the codec is varied based on the complexity of the information being processed, such as the level of motion in an input video stream. A fixed or limited computation complexity is disadvantageous in a dynamic environment, including variable processing power availability, variable power capacity, variable channel capacity, and variable workload. Existing solutions resolve the computation complexity by attempting to reduce complexity in individual functions, such as by reducing picture size (spatial resolution) or reducing frame rate (temporal resolution), which functions are normally not changeable during real-time coding operations. These existing solutions normally introduce a relatively large visual quality degradation.
It is desired to provide real time complexity scalability to provide an acceptable level of visual quality under a variety of variable operating conditions, such as variations in available processing power, power capacity, channel capacity, workload conditions, etc.